package com.miracle.controller;

import com.miracle.entity.Product;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * @author jie.xi
 * @date 2022年05月11日 13:54
 */
@RestController
@Slf4j
public class ProductController {

    @Value("${server.port}")
    private int port;

    @GetMapping("/product/showMsg")
    public String  showMsg(){
      log.info("============进入商品服务，展示商品===========");
      return "进入商品服务，展示商品，当前服务的端口信息:"+port;
    }

    @GetMapping("/product/findAll")
    public Map<String, Object> findAll(){
        HashMap<String, Object> map = new HashMap<>();
        log.info("=========进入商品服务区，查询所有商品信息=======");
        map.put("status",true);
        map.put("msg","查询所有商品信息成功，当前服务端口："+port);
        return map;
    }

    @GetMapping("/product/findOne")
    public Map<String,Object> findOne(String productId){
        HashMap<String, Object> map = new HashMap<>();
        log.info("=========进入商品服务区，查询单个商品信息,商品Id:[{}]=======",productId);
        map.put("status",true);
        map.put("msg","商品Id为："+productId);
        return map;
    }

    @PostMapping("/product/save")
    public Map<String,Object> save(String name){
        HashMap<String, Object> map = new HashMap<>();
        log.info("=========进入商品服务区，接收到商品名称:[{}]=======",name);
        map.put("status",true);
        map.put("msg","商品名称为：" + name);
        return map;
    }

    @PostMapping("/product/update")//RequestBody将json格式转为对应对象信息
    public Map<String,Object> update(@RequestBody Product product){
        HashMap<String, Object> map = new HashMap<>();
        log.info("=========进入商品服务区，接收到商品信息:[{}]=======",product);
        map.put("status",true);
        map.put("product",product);
        return map;
    }
}
